namespace Aurora.AI.Domain.Domain.RateLimitModel.Repositories;
/// <summary>
/// 模型限制仓储
/// </summary>
public interface IRateLimitModelRepository
{
    /// <summary>
    /// 获取所有的限制
    /// </summary>
    /// <returns></returns>
    Task<List<Aggregates.RateLimitModel>> GetAll();
    /// <summary>
    /// 分页列表
    /// </summary>
    /// <param name="page"></param>
    /// <param name="pageSize"></param>
    /// <returns></returns>
    Task<(int total, List<Aggregates.RateLimitModel> list)> GetPageListAsync(int page, int pageSize);
    Task<List<Aggregates.RateLimitModel>> GetListAsync(int page, int pageSize);
    Task<int> GetCountAsync();
    /// <summary>
    /// 创建
    /// </summary>
    /// <param name="application"></param>
    /// <returns></returns>
    Task Create(Aggregates.RateLimitModel entity);
    /// <summary>
    /// 更新
    /// </summary>
    /// <param name="application"></param>
    /// <returns></returns>
    Task UpdateLimit(Aggregates.RateLimitModel entity);
    /// <summary>
    /// 获取详情
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<Aggregates.RateLimitModel> GetByIdAsync(string id);
    /// <summary>
    /// 禁用
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task Disable(string id);


    /// <summary>
    /// 移除
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task Remove(string id);
}